package com.kede.api.stand.service;

import com.kede.api.stand.dto.BuildPackageDTO;
import com.kede.ienum.order.CertiTypeEnum;
import com.kede.pojo.PackageStatusEnum;
import com.kede.pojo.PagePO;
import com.kede.pojo.ResHttp;

/**
 * @Author:Pr.li
 * @Date: create in 2023/9/16 11:13
 */
public interface IPackageManageServer {

    /**
     * 创建打包
     * @param buildPackageDTO
     * @return
     */
    ResHttp buildPackage(BuildPackageDTO buildPackageDTO);

    /**
     * 获取包裹列表
     * @param pagePO
     * @param cerId 认证id
     * @param type 认证类型
     * @return
     */
    ResHttp getMyPackage(PagePO pagePO, Integer cerId, CertiTypeEnum type, PackageStatusEnum status);


    /**
     * 获取包裹详情
     * @param id
     * @return
     */
    ResHttp getPackageDetail(Integer id, CertiTypeEnum type);

    /**
     * 移除包裹中的物品
     * @param packageId
     * @param goodId
     * @return
     */
    ResHttp removeGood(Integer packageId, Integer goodId);


    /**
     * 下单的时候获取上一级代理的信息
     * @param type
     * @param addres
     * @return
     */
    ResHttp getParentInfoByAddress(CertiTypeEnum type, String addres);

    /**
     * 将这个包裹中的所有物品移除
     * @param packageId
     * @return
     */
    ResHttp removePkg(Integer packageId);

    /**
     * 包裹设置为正常状态
     * @param packageId
     * @return
     */
    ResHttp normalPkg(Integer packageId, CertiTypeEnum typeEnum);
}
